r8
r1

(새 문서)
1[[분류:the tree]]
2[include(틀:상위 문서, 문서=the tree)]
3[목차]
4== 시작하기 전에 ==
5Termux를 사용하기에 당연히 Android 여야하며, 이하 조건을 만족해야 정상적인 구동이 가능하다. 또한 포트포워딩이 필수이지만, 불가능할 경우 ngrok 을 사용해야한다.
6
7 * Android 9 이상[* 다를수도 있으나 Termux 최소 지원 버전을 만족해야한다.]
r4
8 * 4GB 이상의 메모리 용량[* 더 적어도 상관은 없으나 안정성은 책임지지 않는다.]
9 * 최소 8GB 이상의 여유 디스크 용량[* Termux proot, 일부 패키지, db 등을 어림잡아 계산.]
r1

(새 문서)
10
r7
11또한 Android 12 이상일 경우, 특정 프로세스의 자식 프로세스 개수가 최대에 도달할 경우 강제 종료하는 기능이 있어, 해당 기능을 비활성화해야한다. [[https://blex.me/@baealex/how-to-fix-termux-process-completed-signal-9|#]]
r1

(새 문서)
12
13== 시작 ==
14=== proot ===
15Termux 자체는 완전한 Linux 가 아니기 때문에 proot 를 설치하는것이 권장된다.
16{{{pkg update -y && pkg install wget curl proot tar -y && wget https://raw.githubusercontent.com/AndronixApp/AndronixOrigin/master/Installer/Ubuntu22/ubuntu22-xfce.sh -O ubuntu22-xfce.sh && chmod +x ubuntu22-xfce.sh && bash ubuntu22-xfce.sh
17}}}
r2
18
19이후 proot 환경에 접속하려면 './start-ubuntu22.sh'를 입력하면 된다.
r1

(새 문서)
20=== 패키지 설치 ===
21패키지
r5
22{{{apt install nano wget curl git python3
r1

(새 문서)
23}}}
24Node.js 22 arm64 설치
25{{{apt-get uninstall nodejs
26wget "https://nodejs.org/dist/v22.11.0/node-v22.11.0-linux-arm64.tar.gz"
27tar -xvf "node-v22.11.0-linux-arm64.tar.gz"
28cp "node-v22.11.0-linux-arm64" "/etc/node22.11.0" -r
29ln -s "/etc/node22.11.0/bin/node" /usr/bin/node
30ln -s "/etc/node22.11.0/bin/npm" /usr/bin/npm
31}}}
32mongodb 설치
33{{{apt-get install gnupg
34curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
35 gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
36 --dearmor
37echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-8.0.list
38apt-get update
39apt-get install -y mongodb-org}}}
r8
40'mongod' 를 입력했을 경우, illegal instruction 이 뜬다면 하위 illegal instruction 문단을 확인하길 바란다.
r1

(새 문서)
41
42nginx 설치[* https 지원을 위해 필요]
43{{{apt-get install nginx
r5
44}}}
45
46=== 설치 ===
47아래 과정은 [[the tree/설치 방법]] 또는 [[the tree/위키 구축]] 과 비슷할수도 있으니 참고바란다.
48
49더트리 clone
r6
50{{{git clone https://github.com/wjdgustn/thetree --recurse-submodules
r5
51cd thetree}}}
52이후 nano 등 편집기를 이용해서 .env[* Android 는 1000번 이하 포트를 열지 못하게 하기 때문에 80 443 등의 포트가 아닌 8080, 8443 등으로 바꾸기를 추천한다.], publicConfig.json, stringConfig.json, serverConfig.json, devConfig.json 을 채워넣는다.
53
54node.js 모듈 설치
r6
55{{{npm i
56}}}
r5
57meilisearch 설치
r6
58{{{curl -L https://install.meilisearch.com | sh
59}}}
r8
60== 실행 ==
61Termux 는 여러 창을 킬수 있기 때문에 각 창마다 해당 프로그램을 실행시키면 된다.[* 화면 왼쪽 측면을 스와이프-New Session]
62=== mongodb ===
63Proot 환경이기 때문에 오류가 날수도 있어서 dbpath 를 지정해주는 것이 좋다.
64
65thetree 폴더에서
66{{{
67mkdir DB
68mongod --dbpath DB}}}
69'mongod --dbpath DB' 는 mongodb를 실행하니 명령어이니 꺼졌을때 다시 입력하기만 하면 된다.
70==== illegal instruction ====
71해당 오류가 발생할 경우, Proot 가 아닌 Termux 에서 아래 명령어를 실행시켜 설치한다.
72{{{wget https://its-pointless.github.io/setup-pointless-repo.sh
73sh setup-pointless-repo.sh
74pkg upgrade && pkg update
75pkg install mongodb
76mkdir -p $PREFIX/data/db
77mkdir $PREFIX/var/log/mongodb
78touch $PREFIX/var/log/mongodb/mongodb.log}}}
79이후 똑같이 mongod 를 실행하면 된다.
80=== meilisearch ===
81호환성에는 문제가 없기 때문에 아래 명령어로 실행할 수 있다.
82{{{./meilisearch --master-key="aSampleMasterKey"
83}}}